check_extract_prompt_with_standard_v1 = """你是一个文档内容审核助手，现在用户给定【审核标准说明文档】和【具体审核要求】。以及若干【待审文档】。
现在由于【待审文档】太长，请你阅读并结合【具体审核要求】和【审核标准说明文档】中的审查重点内容、审查对象、审查思路，对【待审文档】中需要被审查的内容进行压缩和抽取。

### 审核标准说明文档
<!-审核标准说明文档-!>

### 具体审核要求
<!-具体审核要求-!>

### 待审文档前置内容
<!-待审文档前置内容-!>

### 待审文档
<!-待审文档-!>

### 输出要求
- 先阅读【具体审核要求】和【审核标准说明文档】，确定其中要进行审核的【审核内容】是什么，【审核对象】是什么。
- 然后对【待审文档】依据上述思路进行分析，从【审核内容】和【审核对象】角度出发，挖掘原文中哪些内容片段需要被审核，或者从原文内容抽象概括得到观点、推论，将这些总结为一个个携带原文事实依据的基本点。
- 所有基本点基于原文得出，不许编造。事实类基本点必须带有原文片段，基于整体文章出发的观点推论可以不带有原文片段。不计原文片段长度。
- 不要重复【待审文档前置内容】中的基本点，只允许继续【待审文档前置内容】中的思路和风格，来对本次【待审文档】中的内容进行压缩和提取，而且已经存在的基本点不需要再提及。
- 只需要挖掘并列出等待审核的基本点，禁止且不需要进行审核。
- 最终提取结果严格按照下面的json格式进行输出:
```json
{
"基本点1":"xxxx",
"基本点2":"xxxx",
...
"基本点n":"xxxx"
}
```
- 仅进行有误片段的压缩提取，不进行审核，更不指出错误。
- json开始结束应该有```json 和 ```标识符

### 开始提取
"""

check_extract_prompt_no_standard_v1 = """你是一个文档内容审核助手，现在用户给定【具体审核要求】。以及若干【待审文档】。
现在由于【待审文档】太长，请你阅读并结合【具体审核要求】中的审查重点内容、审查对象、审查思路，对【待审文档】中需要被审查的内容进行压缩和抽取。

### 具体审核要求
<!-具体审核要求-!>

### 待审文档前置内容
<!-待审文档前置内容-!>

### 待审文档
<!-待审文档-!>

### 输出要求
- 先阅读【具体审核要求】和【审核标准说明文档】，确定其中要进行审核的【审核内容】是什么，【审核对象】是什么。
- 然后对【待审文档】依据上述思路进行分析，从【审核内容】和【审核对象】角度出发，挖掘原文中哪些内容片段需要被审核，或者从原文内容抽象概括得到观点、推论，将这些总结为一个个携带原文事实依据的基本点。
- 所有基本点基于原文得出，不许编造。事实类基本点必须带有原文片段，基于整体文章出发的观点推论可以不带有原文片段。不计原文片段长度。
- 不要重复【待审文档前置内容】中的基本点，只允许继续【待审文档前置内容】中的思路和风格，来对本次【待审文档】中的内容进行压缩和提取，而且已经存在的基本点不需要再提及。
- 只需要挖掘并列出等待审核的基本点，禁止且不需要进行审核。
- 最终提取结果严格按照下面的json格式进行输出:
```json
{
"基本点1":"xxxx",
"基本点2":"xxxx",
...
"基本点n":"xxxx"
}
```
- 仅进行有误片段的压缩提取，不进行审核，更不指出错误。
- json开始结束应该有```json 和 ```标识符

### 开始提取
"""


check_judge_score_prompt_with_standard_v1 = """你是一个文档内容审核助手，现在用户给定【审核标准说明文档】和【具体审核要求】。以及由若干【待审文档】。
请你阅读并结合【具体审核要求】和【审核标准说明文档】中的【审查重点内容】、【审查对象】、【审查思路】，分析哪些【待审文档】更贴近要进行审查的【重点内容】和【审核对象】，而不仅是相关。并为这些文档的审核优先级打分。

### 审核标准说明文档
<!-审核标准说明文档-!>

### 具体审核要求
<!-具体审核要求-!>

### 待审文档
<!-待审文档-!>
 ,m
### 输出要求
- 先阅读【具体审核要求】和【审核标准说明文档】，确定其中的【重点审核对象】是什么，【是否通过的判断标准和规则】是什么。
- 然后阅读【待审文档】的内容，分析该文档内容是否属于上述被审核对象，文档内容是否具体清晰，对于判断审核是否通过提供多大的实质性帮助。
- 最终为每一篇【待审文档】在0~10之间赋一个整数的分，最低分是0，最高分是10。
- 打分结果严格按照下面的json格式进行输出:
```json
{
"待审文档1":"x分",
"待审文档2":"y分",
...
"待审文档n":"z分",
"修改后的模板文档":"..."
}
```
- json开始结束应该有```json 和 ```标识符

### 开始输出
"""

check_judge_score_prompt_no_standard_v1 = """你是一个文档内容审核助手，现在用户给定【具体审核要求】。以及由若干【待审文档】。
请你阅读并结合【具体审核要求】中的【审查重点内容】、【审查对象】、【审查思路】，分析哪些【待审文档】更贴近要进行审查的【重点内容】和【审核对象】，而不仅是相关。并为这些文档的审核优先级打分。

### 具体审核要求
<!-具体审核要求-!>

### 待审文档
<!-待审文档-!>

### 输出要求
- 先阅读【具体审核要求】，确定其中的【重点审核对象】是什么，【是否通过的判断标准和规则】是什么。
- 然后阅读【待审文档】的内容，分析该文档内容是否属于上述被审核对象，文档内容是否具体清晰，对于判断审核是否通过提供多大的实质性帮助。
- 最终为每一篇【待审文档】在0~10之间赋一个整数的分，最低分是0，最高分是10。
- 打分结果严格按照下面的json格式进行输出:
```json
{
"待审文档1":"x分",
"待审文档2":"y分",
...
"待审文档n":"z分",
"修改后的模板文档":"..."
}
```
- json开始结束应该有```json 和 ```标识符

### 开始输出
"""

check_template_write_prompt_with_standard_v1 = """你是一个文档内容审核助手，现在用户给定【审核标准说明文档】和【具体审核要求】。以及若干【待审文档】。
请你阅读并结合【具体审核要求】和【审核标准说明文档】中的规则和审查思路，对【待审文档】进行内容分析与审核，判断是否通过审核。

### 审核标准说明文档
<!-审核标准说明文档-!>

### 具体审核要求
<!-具体审核要求-!>

### 待审文档
<!-待审文档-!>

### 输出要求
- 先阅读【具体审核要求】和【审核标准说明文档】，确定其中的【重点审核对象】是什么，【是否通过的判断标准和规则】是什么。
- 然后依据上述思路，对【待审文档】中内容进行分析，挖掘其中需要审核的内容，逐个分开判断这些内容在对应的标准下是否通过。
- 审核结果只能在通过和不通过中间选择，不允许出现其他情况。难以判断时也强行判断。
- 如果该内容的审核结果是不通过，先指出原文具体片段错误，然后依据【判断标准和规则】给出不通过的原因和对应的修改建议。
- 如果该内容的审核结果是通过，不通过原因和建议描述对应的值填写null即可。
- 在结束审核后，给出一个简明具体的标题，能够总结本次审核对象的内容和审核结果是否通过，以及不通过原因。类似：“出资方式及期限表述不完整”， “董事会构成符合外部董事及职工代表要求”。
- 上述分析判断的思路和过程都在think模式内部进行。
- 在think模式结束后，将对不同审核对象的审核过程拆分开来，单独作为一个字典，最终严格按照下面的json格式输出一个json数组。
- 每个不同的不通过原因需要分开，单独作为json数组的一个元素，禁止一个元素中揉合不同原因。
- json元素内部保留所有键，对于空白内容对应值填写null，禁止出现其他内容。
```json
[
  {
    "标题": "xxxx",
    "审核结果": "只能填写通过或不通过",
    "不通过原因": "必须结合原文具体指出错误",
    "建议描述": "xxxx"
  },
  {
    "标题": "xxxx",
    "审核结果": "只能填写通过或不通过",
    "不通过原因": "必须结合原文具体指出错误",
    "建议描述": "xxxx"
  },
  ...,
  {
    "标题": "xxxx",
    "审核结果": "只能填写通过或不通过",
    "不通过原因": "必须结合原文具体指出错误",
    "建议描述": "xxxx"
  }
]
```
- 禁止简单描述文档1 文档2 存在错误，必须结合原文内容，不需要区分文档1 2
- json开始结束应该有```json 和 ```标识符，且必须是字典数组，即使只有一个字典。
- 不同的不通过原因及其建议必须分成字典数组排列，同时审核结果都是不通过。

### 开始审核
"""

check_template_write_prompt_no_standard_v1 = """你是一个文档内容审核助手，现在用户给定【具体审核要求】。以及若干【待审文档】。
请你阅读并结合【具体审核要求】中的规则和审查思路，对【待审文档】进行内容分析与审核，判断是否通过审核。

### 具体审核要求
<!-具体审核要求-!>

### 待审文档
<!-待审文档-!>

### 输出要求
- 先阅读【具体审核要求】，确定其中的【重点审核对象】是什么，【是否通过的判断标准和规则】是什么。
- 然后依据上述思路，对【待审文档】中内容进行分析，挖掘其中需要审核的内容，逐个分开判断这些内容在对应的标准下是否通过。
- 审核结果只能在通过和不通过中间选择，不允许出现其他情况。难以判断时也强行判断。
- 如果该内容的审核结果是不通过，先指出原文具体片段错误，然后依据【判断标准和规则】给出不通过的原因和对应的修改建议。
- 如果该内容的审核结果是通过，不通过原因和建议描述对应的值填写null即可。
- 在结束审核后，给出一个简明具体的标题，能够总结本次审核对象的内容和审核结果是否通过，以及不通过原因。类似：“出资方式及期限表述不完整”， “董事会构成符合外部董事及职工代表要求”。
- 上述分析判断的思路和过程都在think模式内部进行。
- 在think模式结束后，将对不同审核对象的审核过程拆分开来，单独作为一个字典，最终严格按照下面的json格式输出一个json数组。
- 每个不同的不通过原因需要分开，单独作为json数组的一个元素，禁止一个元素中揉合不同原因。
- json元素内部保留所有键，对于空白内容对应值填写null，禁止出现其他内容。
```json
[
  {
    "标题": "xxxx",
    "审核结果": "只能填写通过或不通过",
    "不通过原因": "必须结合原文具体指出错误",
    "建议描述": "xxxx"
  },
  {
    "标题": "xxxx",
    "审核结果": "只能填写通过或不通过",
    "不通过原因": "必须结合原文具体指出错误",
    "建议描述": "xxxx"
  },
  ...,
  {
    "标题": "xxxx",
    "审核结果": "只能填写通过或不通过",
    "不通过原因": "必须结合原文具体指出错误",
    "建议描述": "xxxx"
  }
]
```
- 禁止简单描述文档1 文档2 存在错误，必须结合原文内容，不需要区分文档1 2
- json开始结束应该有```json 和 ```标识符，且必须是字典数组，即使只有一个字典。
- 不同的不通过原因及其建议必须分成字典数组排列，同时审核结果都是不通过。

### 开始审核
"""

# check_template_write_prompt_with_standard_v1 = """你是一个文档内容审核助手，现在用户给定【审核标准说明文档】和【具体审核要求】。以及若干【待审文档】。
# 请你阅读并结合【具体审核要求】和【审核标准说明文档】中的规则和审查思路，对【待审文档】进行内容分析与审核，判断是否通过审核。

# ### 审核标准说明文档
# <!-审核标准说明文档-!>

# ### 具体审核要求
# <!-具体审核要求-!>

# ### 待审文档
# <!-待审文档-!>

# ### 输出要求
# - 先阅读【具体审核要求】，确定其中的【重点审核对象】是什么，【是否通过的判断标准和规则】是什么。
# - 然后依据上述思路，对【待审文档】中内容进行分析，挖掘其中需要审核的内容，判断这些内容在对应的标准下是否通过。
# - 审核结果只能在通过和不通过中间选择，不允许出现其他情况。难以判断时也强行判断。
# - 如果审核结果是不通过，结合审核标准和规则，先指出原文具体片段错误，然后依据【判断标准和规则】给出不通过的原因和对应的修改建议。
# - 如果审核结果是通过，只需要输出标题和审核结果，不通过原因和建议描述对应的值填写null即可。
# - 在结束审核后，综合本次审核对象，审核结果以及不通过原因，给出一个浓缩的概括标题。
# - 上述分析判断的思路和过程都在think模式内部进行。
# - 在think模式结束后，将不同的不通过原因和建议拆分开来，单独作为一个字典输出，而每个字典的审核结果是一致的，最终严格按照下面的json格式输出一个json数组。
# - json元素内部保留所有键，对于空白内容对应值填写null，禁止出现其他内容。
# ```json
# [
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   },
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   },
#   ...,
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   }
# ]
# ```
# - 禁止简单描述文档1 文档2 存在错误，必须结合原文内容，不需要区分文档1 2
# - json开始结束应该有```json 和 ```标识符
# - 不同的不通过原因及其建议必须分成字典数组排列，同时审核结果都是不通过。

# ### 开始审核
# """

# check_template_write_prompt_no_standard_v1 = """你是一个文档内容审核助手，现在用户给定【具体审核要求】。以及若干【待审文档】。
# # 请你阅读并结合【具体审核要求】中的规则和审查思路，对【待审文档】进行内容分析与审核，判断是否通过审核。

# # ### 具体审核要求
# # <!-具体审核要求-!>

# # ### 待审文档
# # <!-待审文档-!>

# ### 输出要求
# - 先阅读【具体审核要求】，确定其中的【重点审核对象】是什么，【是否通过的判断标准和规则】是什么。
# - 然后依据上述思路，对【待审文档】中内容进行分析，挖掘其中需要审核的内容，分别判断这些内容在对应的标准下是否通过。
# - 审核结果只能在通过和不通过中间选择，不允许出现其他情况。难以判断时也强行判断。
# - 如果审核结果是不通过，结合审核标准和规则，以数组形式列出原文具体片段错误，然后分别给出不通过的原因和对应的修改建议。
# - 如果审核结果是通过，不通过原因和建议描述对应的值填写null即可。
# - 在结束审核后，综合本次审核对象，不通过原因以及结果，给出一个浓缩的概括标题。
# - 上述分析判断的思路和过程都在think模式内部进行。
# - 在think模式结束后，最终严格按照下面的json格式输出一个json数组。
# - json元素内部保留所有键，对于空白内容对应值填写null，禁止出现其他内容。
# ```json
# [
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   },
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   },
#   ...,
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   }
# ]
# ```
# - 禁止简单描述文档1 文档2 存在错误，必须结合原文内容，不需要区分文档1 2
# - json开始结束应该有```json 和 ```标识符
# - 禁止将不同的不通过原因及其建议填写到一个值中，必须分数组描述。

# ### 开始审核
# """

# check_template_write_prompt_no_standard_v1 = """你是一个文档内容审核助手，现在用户给定【具体审核要求】。以及若干【待审文档】。
# 请你阅读并结合【具体审核要求】中的规则和审查思路，对【待审文档】进行内容分析与审核，判断是否通过审核。

# ### 具体审核要求
# <!-具体审核要求-!>

# ### 待审文档
# <!-待审文档-!>

# ### 输出要求
# - 先阅读【具体审核要求】，确定其中的【重点审核对象】是什么，【是否通过的判断标准和规则】是什么。
# - 然后依据上述思路，对【待审文档】中内容进行分析，挖掘其中需要审核的内容，判断这些内容在对应的标准下是否通过。
# - 审核结果只能在通过和不通过中间选择，不允许出现其他情况。难以判断时也强行判断。
# - 如果审核结果是不通过，结合审核标准和规则，先指出原文具体片段错误，然后给出不通过的原因和对应的修改建议。
# - 如果审核结果是通过，不通过原因和建议描述对应的值填写null即可。
# - 在结束审核后，综合所有审核内容给出一个浓缩的概括标题，总结本次审核对象以及结果。
# - 上述分析判断的思路和过程都在think模式内部进行。
# - 在think模式结束后，最终严格按照下面的json格式进行输出一个json数组，每个元素是对内容中不同对象的审核流程，元素内部保留所有键，对于空白内容对应值填写null，禁止出现其他内容。:
# ```json
# [
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   },
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   },
#   ...,
#   {
#     "标题": "xxxx",
#     "审核结果": "只能填写通过或不通过",
#     "不通过原因": "必须结合原文具体指出错误",
#     "建议描述": "xxxx"
#   }
# ]
# ```
# - 禁止简单描述文档1 文档2 存在错误，必须结合原文内容，不需要区分文档1 2
# - json开始结束应该有```json 和 ```标识符

# ### 开始审核
# """


prompts = {
    "extract":{
        "v1":{
            "with_standard":check_extract_prompt_with_standard_v1,
            "no_standard":check_extract_prompt_no_standard_v1
        }
    },
    "judge":{
        "v1":{
            "with_standard":check_judge_score_prompt_with_standard_v1,
            "no_standard":check_judge_score_prompt_no_standard_v1
        }
    },
    "write":{
        "v1":{
            "with_standard":check_template_write_prompt_with_standard_v1,
            "no_standard":check_template_write_prompt_no_standard_v1
        }
    }
}


extract_prompt_v1 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干参考文献。
请你在阅读后按照模板文档中的思路对参考文献进行分析，然后基于参考文献和分析思路提取出一些有利于落笔仿写的携带原文事实依据的观点、推论等基本点。

### 模板文档
<!-模板文档-!>

### 参考文献前置内容
<!-参考文献前置内容-!>

### 参考文献
<!-参考文献-!>

### 输出要求
- 先确定模板文档的写作主题、思路、内容要求。
- 然后对参考文献内容，依据上述思路进行分析，挖掘其中获取符合主题的携带原文事实依据的观点、推论，或直接按照模板文档仿写一小片段。
- 模板文档中的xxx内容表示后续需要填空的内容，所以需要在【参考文献】中找到上下文相似的事实提取出来，作为基本点，便于后续填写xxx。
- 当xxx表示人名 地名 公司名等实体内容，更需要从【参考文献】中将包含类似实体的上下文句子提取出来，不要单独提取实体，也不要提取含有xxx的模板句子。
- 如果观点推论等难以找到原文事实，不要编造，只输出观点推论即可。
- 不要重复参考文献前置内容中的基本点，只允许继续前置内容中的思路和风格，来对本次参考文献中的内容进行提取，而且已经存在的基本点不需要再提及。
- 最终提取结果严格按照下面的json格式进行输出:
```json
{
"基本点1":"xxxx",
"基本点2":"xxxx",
...
"基本点n":"xxxx",
}
```
### 开始提取
"""

judge_score_prompt_v1 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干篇参考文献。
请你阅读并分析哪些参考文献对于进行模板仿写的实质性帮助最大，而不仅是相关。并对这些参考文献的帮助性进行打分。
打分结束后，尝试利用参考文献中内容，将模板文档中开始和结束位置处，表示时间地点人物的xxx空白进行填写。

### 模板文档
<!-模板文档-!>

### 参考文献列表
<!-参考文献-!>

### 输出要求
- 先确定模板文档的写作主题、思路、内容要求。
- 然后阅读参考文献的内容，分析如果按照上述主题思路进行写作，该内容对写作能提供多大的实质性帮助。
- 最终为每一篇参考文献在0~10之间赋一个整数的分，最低分是0，最高分是10。
- 如果模板文档中类似“第X轮巡察工作安排，党组授权，组长:×××  成员: ××× ××× ××× ×××，第X巡察组于2023年X月X日至X月X日”的实体事实内容xxx空白可以借助参考文献直接填写，那么仅填写xxx，尽量保持模板文档内部不变，并且在json的“修改后的模板文档”对应值填写新的完整的模板文档。
- 打分结果严格按照下面的json格式进行输出:
```json
{
"参考文献1":"x分",
"参考文献2":"y分",
...
"参考文献n":"z分",
"修改后的模板文档":"...",
}
```
- 如果参考文献都是观点论点等非事实实体内容，那么不需要修改模板文档，json中"修改后的模板文档"对应的值是""。

### 开始输出
"""


judge_score_prompt_v2 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干篇参考文献。
请你阅读并分析哪些参考文献对于进行模板仿写的实质性帮助最大，而不仅是相关。并对这些参考文献的帮助性进行打分。
打分结束后，尝试利用参考文献中内容，将模板文档中开始和结束位置处，表示时间地点人物的xxx空白进行填写。

### 模板文档
<!-模板文档-!>

### 参考文献列表
<!-参考文献-!>

### 输出要求
- 先确定模板文档的写作主题、思路、内容要求。
- 然后阅读参考文献的内容，分析如果按照上述主题思路进行写作，该内容对写作能提供多大的实质性帮助。
- 最终为每一篇参考文献在0~10之间赋一个整数的分，最低分是0，最高分是10。
- 如果模板文档中开头结尾中的xxx表示时间、地点、组织名、人名的实体内容可以借助参考文献进行填写，那么仅对时间地点人名组织的xxx留白进行填空，而模板文档其他要编写的内容基本不变。然后将完整文档写入json中"修改后的模板文档"对应的值。
- 打分结果严格按照下面的json格式进行输出:
```json
{
"参考文献1":"x分",
"参考文献2":"y分",
...
"参考文献n":"z分",
"修改后的模板文档":"...",
}
```
- 如果参考文献都是观点论点理论等思想内容,或者除了时间、地点、组织名、人名等信息还有具体推论和分析，那么不需要修改模板文档，json中"修改后的模板文档"对应的值是""。
- 模板文档内部章节内部的xxx不需要使用参考文献内容进行填写，更不需要修改。

### 开始输出
"""


template_write_prompt_v1 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干篇参考文献。
请你阅读并分析模板文档和参考文献，然后借助参考文献中的内容对模板进行xxx填空和段落仿写，最终输出完整有内容的成品文档。

### 模板文档
<!-模板文档-!>

### 参考文献列表
<!-参考文献-!>

### 输出要求
- 需要按照模板中内容提示对参考文献内容进行分析。
- 对于模板文档中一些需要填写的xxx事实性内容，尽力将参考文献中最相关的事实填写上去。
- 如果所有参考文献都没有这些xxx相关的事实性内容，像参考文档一样直接填写xxx即可。
- 将参考文献中的内容化用仿写到合适的段落中。
- 最终一定一定要单独输出一行### 仿写结果，然后换行输出仿写完成后的成品文档：

### 开始输出
"""


template_write_prompt_v2 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干篇参考文献。
请你阅读并分析模板文档和参考文献，然后借助参考文献中的内容对模板进行xxx填空和段落仿写，最终输出完整有内容的成品文档。

### 模板文档
<!-模板文档-!>

### 参考文献列表
<!-参考文献-!>

### 输出要求
- 需要按照模板中内容提示对参考文献内容进行分析。
- 模板文档中的xxx表示需要填空的地方，每一处都必须借助参考文献内容填写上具体真实的内容。
- 如果某处xxx有不止一篇参考文献内容可以填写，那么将参考文献中最相关最相似的事实填写上去。
- 如果所有参考文献都没有与xxx上下文相似的事实性内容，像参考文档一样直接填写xxx即可，但是如果可以填写，必须填写。
- 将参考文献中的内容化用仿写到合适的段落中，但是禁止重复，禁止编写参考文献中无依据的内容。
- 将分析过程包裹在think过程中，思考结束后直接只输出仿写完成后的成品文档：

### 开始输出
"""


template_write_prompt_v3 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干篇参考文献。
请你阅读并分析模板文档和参考文献，然后借助参考文献中的内容对模板进行xxx填空和段落仿写，最终输出完整有内容的成品文档。

### 模板文档
<!-模板文档-!>

### 参考文献列表
<!-参考文献-!>

### 输出要求
- 严格按照 Markdown语法规范输出，保留所有可解析的格式元素，确保格式正确，能够被 Markdown 解析器正确解析，不要添加任何解释性文字，只返回 Markdown 内容。
- 忽略所有输入中类似图片路径或图片链接的内容，例如![](xxxxxx.jpg)。并且在输出中也禁止含有图片路径或图片链接。
- 需要按照模板中内容提示对参考文献内容进行分析。
- 模板文档中的xxx表示需要填空的地方，每一处都必须借助参考文献内容填写上具体真实的内容。
- 如果某处xxx有不止一篇参考文献内容可以填写，那么将参考文献中最相关最相似的事实填写上去。
- 如果所有参考文献都没有与xxx上下文相似的事实性内容，像参考文档一样直接填写xxx即可，但是如果可以填写，必须填写。
- 将参考文献中的内容化用仿写到合适的段落中，但是禁止重复，禁止编写参考文献中无依据的内容。
- 将分析过程包裹在think过程中，思考结束后直接只输出仿写完成后的成品文档：

### 开始输出
"""


text_extract_2_xml_v1 = """
### 用户输入
<!-用户文本-!>

### 输出要求
<instruction>
请将用户提供的文档按以下规则转换为XML格式：

1. 结构要求：
   - 使用<chapter>标签包裹每个章节
   - 章节标题必须包裹在<chapterTitle>标签内
   - 正文内容必须包裹在<chapterContent>标签内
   - 支持多级嵌套（如5.1.1.1）

2. 处理规则：
   a) 标题识别：
      - 数字编号开头（如"5.1"）自动识别为章节标题
      - 连续空行作为章节分隔符
   
   b) 内容处理：
      - 保留原始换行和缩进
      - 自动转义特殊字符（如&→&amp;）
      - 字母列表项保持原有格式（如a)、b)项）
      
   c) 列表项聚合规则：
      - 连续数字编号列表（如1. 2. 3.）必须合并到单个<chapterContent>
      - 保留原始编号格式和换行结构
      - 使用换行分隔列表项（保留2个空格缩进）

3. 异常处理：
   - 无标题内容用<unnamedChapter>标记
   - 空章节添加<emptyChapter/>注释
   - 发现编号不连续时添加<warning>备注

4. 输出要求：
   - 生成标准XML声明头
   - 根节点为<documentStructure>
   - 确保标签正确闭合
   - 添加版本属性version="1.0"
   - 某级标签下无内容，不显示<chapterContent>标签
   - chapterContent标签下不能嵌套chapter及chapterTitle标签

请先确认理解要求，然后请求用户提供需要转换的原始文本。
</instruction>

### 开始输出
"""

text_extract_2_json_v1 = """
### 用户输入
<!-用户文本-!>

你是一位专业的文档结构化处理专家，请按以下要求处理输入文本：
### 处理规则：
标题识别：
    识别以"X.X"、"X. XX"格式开头的标题（如5.1、5.2.3、5.1 ）
    支持最大4级嵌套（如5.1.2.3）
    自动继承上级编号（如5.1.1需在5.1章节下）
    连续空行作为章节分隔符
内容提取：
    提取标题后的完整段落内容
    合并连续段落直到下一同级标题出现
结构构建：
    使用严格JSON格式
    每级chapters数组按数字序号排序
    确保chapterContent不包含子章节
列表项聚合规则：
   连续数字编号列表（如1. 2. 3.）必须合并到单个chapterContent
   保留原始编号格式和换行结构
   使用<br/>标签分隔列表项 
异常处理：
    缺失内容时可省略chapterContent

### 输出示例：
{
"document": {
"chapters": [
{
"chapterTitle": "5 交货准备",
"chapters": [
{
"chapterTitle": "5.1 包装",
"chapterContent": "包装材料应符合...",
"chapters": [
{
"chapterTitle": "5.1.1 外包装",
"chapterContent": "使用双层瓦楞纸箱..."
}]}]}]}}
请确认理解处理规则，遇到非常规结构时先输出处理逻辑说明再生成结果。
"""


template_write_prompt_content_v4 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干篇参考文献。
请你阅读并分析模板文档和参考文献，然后借助参考文献中的内容对模板进行xxx填空和段落仿写，最终输出完整有内容的成品文档。

### 模板文档
<!-模板文档-!>

### 参考文献列表
<!-参考文献-!>

### 输出要求
- 严格按照 Markdown语法规范输出，保留所有可解析的格式元素，确保格式正确，能够被 Markdown 解析器正确解析，不要添加任何解释性文字，只返回 Markdown 内容。
- 忽略所有输入中类似图片路径或图片链接的内容，例如![](xxxxxx.jpg)。并且在输出中也禁止含有图片路径或图片链接。
- 需要按照模板中内容提示对参考文献内容进行分析。
- 模板文档中的xxx表示需要填空的地方，每一处都必须借助参考文献内容填写上具体真实的内容。
- 如果某处xxx有不止一篇参考文献内容可以填写，那么将参考文献中最相关最相似的事实填写上去。
- 如果所有参考文献都没有与xxx上下文相似的事实性内容，像参考文档一样直接填写xxx即可，但是如果可以填写，必须填写。
- 将参考文献中的内容化用仿写到合适的段落中，但是禁止重复，禁止编写参考文献中无依据的内容。
- 将分析过程包裹在think过程中，思考结束后直接只输出仿写完成后的成品文档：
- 如果写作过程中用到了某个参考文献，需要在句子后简要标注出第几个参考文献的内容片段，格式为：<cite_symbol>参考文献序号:参考文献具体片段</cite_symbol>

### 开始输出
"""

template_write_prompt_claim_v4 = """你是一个办公文档写作助手，现在用户给定要进行严格仿写的模板文档，和若干篇参考文献。
请你阅读并分析模板文档和参考文献，然后借助参考文献中的内容对模板进行xxx填空和段落仿写，最终输出完整有内容的成品文档。

### 模板文档
<!-模板文档-!>

### 参考文献列表
<!-参考文献-!>

### 输出要求
- 严格按照 Markdown语法规范输出，保留所有可解析的格式元素，确保格式正确，能够被 Markdown 解析器正确解析，不要添加任何解释性文字，只返回 Markdown 内容。
- 忽略所有输入中类似图片路径或图片链接的内容，例如![](xxxxxx.jpg)。并且在输出中也禁止含有图片路径或图片链接。
- 需要按照模板中内容提示对参考文献内容进行分析。
- 模板文档中的xxx表示需要填空的地方，每一处都必须借助参考文献内容填写上具体真实的内容。
- 如果某处xxx有不止一篇参考文献内容可以填写，那么将参考文献中最相关最相似的事实填写上去。
- 如果所有参考文献都没有与xxx上下文相似的事实性内容，像参考文档一样直接填写xxx即可，但是如果可以填写，必须填写。
- 将参考文献中的内容化用仿写到合适的段落中，但是禁止重复，禁止编写参考文献中无依据的内容。
- 将分析过程包裹在think过程中，思考结束后直接只输出仿写完成后的成品文档：
- 如果写作过程中用到了某个参考文献的某些基本点，需要在句子后简要标注出参考文献序号和基本点序号，格式为：<cite_symbol>参考文献序号:基本点序号</cite_symbol>。参考文献序号和基本点序号严格按照上文中赋予的序号。

### 注意：
- 参考文献序号:基本点序号 是一个基本单元。每个即使是同一个参考文献的两个不同基本点也要分开。不同基本单元之间使用,分隔。
- <cite_symbol>和</cite_symbol>这两个特殊符号保持不变。
- 每个基本点序号前必须有一个参考文献序号和一个:，例如<cite_symbol>a:b, a:c, a:d, e:f</cite_symbol>，此处abcdef代表真实数字。
### 开始输出
"""

